import { routes } from '@/router'
import type { Profile } from '@/types/user'
import { getLocalToken, removeLocalToken, setLocalToken } from '@/utils/auth'
import { defineStore, type StoreDefinition } from 'pinia'
import { ref } from 'vue'
import type { RouteRecordRaw } from 'vue-router'
export const useUserStore:StoreDefinition = defineStore('hm-user', () => {
  // 优先从本地取
  const token = ref(getLocalToken() || '') 
  // 个人信息
  const profile = ref<Profile>({} as Profile)
  const setProfile = (p: Profile) => {
      profile.value = p
  }
  const setToken = (t: string)=>{
    token.value = t
    // 本地存一份
    setLocalToken(t)
  }

  const clearUserInfo = ()=> {
    // 清除Token
    token.value = ''
    removeLocalToken()
  }
    const menuList = ref<RouteRecordRaw[]>([...routes])
  const setMenuList = (filterRoutes: RouteRecordRaw[]) => {
    menuList.value = [...menuList.value, ...filterRoutes]
  };
  return { token, setToken, clearUserInfo, profile, setProfile, menuList, setMenuList }
})

